package com.bascker.algorithm.practice.bit;

/**
 * 位1的个数:
 *   编写一个函数，输入是一个无符号整数，返回其二进制表达式中数字位数为 ‘1’ 的个数（也被称为汉明重量）。
 *
 * @author bascker
 * @apiNote leetcode T191
 * @implNote https://gitee.com/bascker/algorithm/wikis/1%E3%80%81%E4%BD%8D1%E7%9A%84%E4%B8%AA%E6%95%B0?sort_id=2987895
 */
public class HammingWeight {

    public int hammingWeight(int n) {
        int rs = 0;
        int x = n;
        while (x != 0) {
            x = x & (x - 1);
            rs ++;
        }

        return rs;
    }

}
